package com.lemon.core.base.pojo.tree;

import java.util.List;

/**
 * 节点接口
 *
 * @author pan
 * @since 2018-08-27
 */
public interface INode<T> {

    /**
     * 节点ID
     *
     * @return {@link T}
     */
    T getId();

    /**
     * 父节点ID
     *
     * @return {@link Long}
     */
    T getParentId();

    /**
     * 子孙节点列表
     *
     * @return List
     */
    List<INode<T>> getChildren();

    /**
     * 是否有子孙节点
     *
     * @return Boolean
     */
    default Boolean getHasChildren() {
        return false;
    }

}
